package com.zjsru.leetcode75.level1;

/**
 * @Author: cookLee
 * @Date: 2023-10-06
 * 相等行列对
 */
public class EqualPairs {

    /**
     * 主
     * 输入：grid = [[3,2,1],[1,7,6],[2,7,7]]
     * 输出：1
     * 解释：存在一对相等行列对：
     * - (第 2 行，第 1 列)：[2,7,7]
     * \
     * 输入：grid = [[3,1,2,2],[1,4,4,5],[2,4,2,2],[2,4,2,2]]
     * 输出：3
     * 解释：存在三对相等行列对：
     * - (第 0 行，第 0 列)：[3,1,2,2]
     * - (第 2 行, 第 2 列)：[2,4,2,2]
     * - (第 3 行, 第 2 列)：[2,4,2,2]
     * \
     * @param args args
     */
    public static void main(String[] args) {
        EqualPairs equalPairs = new EqualPairs();
        int[][] grid = new int[][]{{3, 1, 2, 2}, {1, 4, 4, 5}, {2, 4, 2, 2}, {2, 4, 2, 2}};
        System.out.println(equalPairs.equalPairs(grid));
    }

    /**
     * 模拟：按行和列比较 一致曾把结果加1
     *
     * @param grid 网格
     * @return int
     */
    public int equalPairs(int[][] grid) {
        int ans = 0;
        int len = grid.length;
        for (int row = 0; row < len; row++) {
            for (int col = 0; col < len; col++) {
                if (this.helper(row, col, len, grid)) {
                    ans++;
                }
            }
        }
        return ans;
    }

    /**
     * 帮手
     * 计算平等助手类
     *
     * @param len  len
     * @param grid 网格
     * @param row  行
     * @param col  列
     * @return boolean
     */
    private boolean helper(int row, int col, int len, int[][] grid) {
        for (int i = 0; i < len; i++) {
            if (grid[row][i] != grid[i][col]) {
                return false;
            }
        } return true;
    }
}
